package vista;



import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import modelo.Usuario;
import modelo.UsuarioView;

import controlador.TelefoniaMovil;

public class ListarUsuario extends JFrame {
	/**
	 * 
	 */
	private TelefoniaMovil tm;
	private JTable tabla;
	private JScrollPane scrollPane;
	private JButton modificarButton;
	private JButton cancelarButton;
	private JButton eliminarButton;
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ListarUsuario mu = new ListarUsuario();
		mu.setVisible(true);
	}
	
	public ListarUsuario(TelefoniaMovil tm) {
		
		this.tm = tm;
		initGUI("Modificar");
		
	}
	
	public ListarUsuario(TelefoniaMovil tm, String tipo) {
		
		this.tm = tm;
		initGUI(tipo);
	}
	

	public ListarUsuario() {
		
		initGUI("Modificar");
		
	}
	
//	private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                    
//		 
//	    String ele = txtElemento.getText();
//	 
//	    for (int i = 0; i < tbComponentes.getRowCount(); i++) {
//	           if (tbComponentes.getValueAt(i, 1).equals(ele)) {                                          
//	                  tbComponentes.changeSelection(i, 1, false, false);
//	                  break;
//	           }
//	    }
//	}

	
	
	public void llenarTabla(){
		Vector usuarios = tm.obtenerUsuario();
		
		Vector columnas = new Vector();
		columnas.add("Dni");
		columnas.add("Nombre");
		columnas.add("Apellido");
		columnas.add("Domicilio");
		columnas.add("Telefono");
			
		tabla = new JTable(usuarios, columnas);
		scrollPane = new JScrollPane(tabla);
		scrollPane.setBounds(14, 14, 350, 189);
		getContentPane().add(scrollPane);
		
	}
	
	private void initGUI(String tipo) {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			llenarTabla();
			
			modificarButton =  new JButton();
			modificarButton.setText("Modificar");
			modificarButton.setBounds(100, 230, 90, 30);
			if (tipo.equalsIgnoreCase("Modificar")){
				getContentPane().add(modificarButton);
				modificarButton.addActionListener(new ActionListener()
				{
					public void actionPerformed(ActionEvent evt) 
					{
						int registro = tabla.getSelectedRow();
						if (registro == -1){
							JOptionPane.showMessageDialog(null, "Debe Selccionar un usuario para modificar", "Modificar Usuario", JOptionPane.ERROR_MESSAGE);
						}else{
							int dniUsuario = (Integer) tabla.getValueAt(registro, 0);
							Usuario user = tm.buscarUsuario(dniUsuario);
							dispose();
							ModificarUsuario modificar = new ModificarUsuario(tm, user);
							modificar.setVisible(true);
							
						}
					 
					}
				});
				

			}else{
				eliminarButton=  new JButton();
				eliminarButton.setText("Eliminar");
				eliminarButton.setBounds(100, 230, 90, 30);
				getContentPane().add(eliminarButton);
				eliminarButton.addActionListener(new ActionListener()
				{
					public void actionPerformed(ActionEvent evt) 
					{
						int registro = tabla.getSelectedRow();
						if (registro == -1){
							JOptionPane.showMessageDialog(null, "Debe Selccionar un usuario para eliminar", "Eliminar Usuario", JOptionPane.INFORMATION_MESSAGE);
						}else{
							int dniUsuario = (Integer) tabla.getValueAt(registro, 0);
							boolean borrar = tm.borrarUsuario(dniUsuario);
							if (borrar){
								JOptionPane.showMessageDialog(null, "El usuario se borro satisfactoriamente ", "Eliminar Usuario", JOptionPane.INFORMATION_MESSAGE);
								dispose();
							}else{
								JOptionPane.showMessageDialog(null, "No se pudo borrar el Usuario", "Eliminar Usuario", JOptionPane.ERROR_MESSAGE);
							}
							
						}
					 
						
						
					}
				});
				
			}
						
			
			
			cancelarButton =  new JButton();
			cancelarButton.setText("Cancelar");
			cancelarButton.setBounds(230, 230, 90, 30);
			getContentPane().add(cancelarButton);
			cancelarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					dispose();
				}
			});
			setTitle("Listar Usuarios");
			pack();
			this.setSize(400, 328);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

